﻿using MgSoft.K3Cloud.WebApi.Common.Dto.Property;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Text;

namespace MgSoft.K3Cloud.WebApi.Common.Dto.Gl
{
    public class Gl_Voucher_FEntity<Type_DetailIdModel>
        where Type_DetailIdModel : Gl_Voucher_FDetailIdModel
    {
        /// <summary>
        /// 序号
        /// </summary>
        /// <remarks>在指定现金流量时，需要知道科目对应的行下标</remarks>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual int? FSeq { get; set; }

        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual long? FEntryID { get; set; }
        /// <summary>
        /// 摘要
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual string FEXPLANATION { get; set; }
        /// <summary>
        /// 科目编码
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual FNumberProperty FACCOUNTID { get; set; }
        /// <summary>
        /// 核算维度
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual Type_DetailIdModel FDetailID { get; set; }
        /// <summary>
        /// 币别
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual FNumberProperty FCURRENCYID { get; set; }
        /// <summary>
        /// 汇率类型
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual FNumberProperty FEXCHANGERATETYPE { get; set; }
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual decimal? FEXCHANGERATE { get; set; }
        /// <summary>
        /// 单位
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual FNumberProperty FUnitId { get; set; }
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual decimal? FPrice { get; set; }
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual decimal? FQty { get; set; }
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual decimal? FAMOUNTFOR { get; set; }
        /// <summary>
        ///  借方金额
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual decimal? FDEBIT { get; set; }
        /// <summary>
        /// 贷方金额
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual decimal? FCREDIT { get; set; }
        /// <summary>
        /// 本位币金额
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual decimal? FAmount { get; set; }
        /// <summary>
        /// 借贷方向
        /// </summary>
        /// <remarks>1:借方；-1:贷方</remarks>
        [JsonIgnore]
        public virtual int? FDC { get; set; } = 1;
        /// <summary>
        /// 结算方式
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual FNumberProperty FSettleTypeID { get; set; }
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual string FSETTLENO { get; set; }
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual decimal? FEXPORTENTRYID { get; set; }
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual string FBUSNO { get; set; }
    }
    public class Gl_Voucher_FEntity : Gl_Voucher_FEntity<Gl_Voucher_FDetailIdModel>
    { }
}
